// 添加用户请求模块

// 引入密码加密函数
const { encrypt } = require('../../middleware/encrypt.js');
// 引入User集合规则
const User = require('../../model/user.js');
// 引入user集合验证方法
const { check } = require('../../model/userCheck.js');

module.exports = async (req, res, next) => {
    try {
        // 字段验证
        await check(req.body);
    } catch (error) {
        // 验证失败，渲染添加用户页面，并提示错误
        return res.render('admin/user-edit', { errMessage: error.message, user: req.body });
    }
    try {
        // 字段验证通过，查询数据库中是否有此邮箱，若有则提示用户
        let result = await User.findOne({ emial: req.body.email });
        console.log(result)
        if (!result) {
            // 数据库中没有此邮箱，执行插入操作
            // 密码加密
            req.body.password = await encrypt(req.body.password);
            await User.create(req.body);
            // 重定向到用户管理页面
            return res.redirect('/admin/user');
        } else {
            // 数据库中有此邮箱，渲染添加用户页面, 并提示错误
            return res.render('admin/user-edit', { errMessage: '邮箱已存在，请更换邮箱或找回密码！', user: req.body });
        }
    } catch (error) {
        return next(error);
    }
}